package br.ufg.modulo04;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LivroDeVisitasServlet
 */
@WebServlet("/livrodevisitas")
public class LivroDeVisitasServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static List<Recado> listaDeRecados = new ArrayList<Recado>();

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public LivroDeVisitasServlet() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");

		ServletOutputStream out = response.getOutputStream();
		out.print("<body><form action='livrodevisitas' method='post'>");
		out.print("<center><h1>Livro de Visitas</h1></center>");

		if (listaDeRecados.isEmpty()) {
			out.print("<p>Nenhuma mensagem no Livro de Visitas</p>");
			out.print("<p>Seja o primeiro a deixar um recado</p>");
		}
		out.print("Autor: <input name='autor' type='text' style='width: 250px'/><br/>");
		out.print("Mensagem:<br/><textarea name='mensagem' rows='10' cols='33'>Digite sua mensagem aqui...</textarea><br/>");
		out.print("<input type='submit' value='Escrever no livro'/>");

		for (Recado recado : listaDeRecados) {
			out.print("<hr/>");
			out.print("<div>");
			out.print("<fieldset style='width: 400px'>");
			out.print("<legend>"
					+ new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(recado
							.getDataDePublicacao()) + "</legend>");
			out.print("Autor: " + recado.getAutor() + "<br/>");
			out.print("Mensagem: " + recado.getMensagem() + "<br/>");
			out.print("</fieldset>");
			out.print("</div>");
		}
		out.print("</form></body>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		Recado novoRecado = new Recado();
		novoRecado.setAutor(request.getParameter("autor"));
		novoRecado.setMensagem(request.getParameter("mensagem"));
		novoRecado.setDataDePublicacao(new Date());

		listaDeRecados.add(novoRecado);

		doGet(request, response);
	}

}
